package com.yy.kit.object;

import com.alibaba.fastjson.JSONObject;
import com.xiaoleilu.hutool.util.ObjectUtil;

import java.util.LinkedHashMap;

/**
 * <p>
 * 一些对象操作的工具类
 * </p>
 *
 * @author 杨阳
 * @since 2017年9月7日
 */
public class YYObjectKits {

    /**
     * <p>
     * 判断对象是否不为null
     * </p>
     *
     * @param obj 对象
     * @return {@link Boolean}
     * @author 杨阳
     * @since 2017年9月7日
     */
    public static boolean isNotNull(Object obj) {
        return ObjectUtil.isNotNull(obj);
    }

    /**
     * <p>
     * 判断对象是否为null
     * </p>
     *
     * @param obj 对象
     * @return {@link Boolean}
     * @author 杨阳
     * @since 2017年9月7日
     */
    public static boolean isNull(Object obj) {
        return ObjectUtil.isNull(obj);
    }

    /**
     * <p>
     * 将字符串转换为实体类
     * </p>
     *
     * @param jsonStr json字符串
     * @param zlass   要转换的类型
     * @return {@link Object}
     * @author 杨阳
     * @since 2017年10月19日
     */
    public static <T> T mapToBean(String jsonStr, Class<T> zlass) {
        return JSONObject.parseObject(jsonStr, zlass);
    }

    /**
     * <p>
     * 将LinkedHashMap转换为实体类
     * </p>
     *
     * @param map   {@LinkedHashMap}
     * @param zlass 要转换的类型
     * @return {@link Object}
     * @author 杨阳
     * @since 2017年10月19日
     */
    public static <T> T mapToBean(LinkedHashMap map, Class<T> zlass) {
        return mapToBean(JSONObject.toJSONString(map), zlass);
    }
}
